﻿title: A .NET library for reading and writing CSV files. Extremely fast, flexible, and easy to use.
---
<div class="home">
	<div class="columns">
		<div class="column">
			<h1 class="title is-1">CsvHelper</h1>
			<h2 class="subtitle">A .NET library for reading and writing CSV files. Extremely fast, flexible, and easy to use.</h2>

			<div class="columns is-variable is-2">
				<div class="column is-narrow">
					<a class="button is-large is-success" href="https://www.nuget.org/packages/CsvHelper/">
						<span class="icon">
							<i class="fas fa-download"></i>
						</span>
						<span>Download</span>
					</a>
				</div>
				<div class="column is-narrow">
					<a class="button is-large is-link" href="@Context.GetLink("/getting-started")">
						<span class="icon">
							<i class="fas fa-play-circle"></i>
						</span>
						<span>Get Started</span>
					</a>
				</div>
			</div>

		</div>
		<div class="column">
			<img src="@Context.GetLink("/images/logo.svg")" />
		</div>
	</div>

	<h3 class="title is-3">Features</h3>
	<hr />

	<div class="columns is-multiline">
		<div class="column is-4">
			<h4 class="title is-4 has-text-weight-normal">
				<span class="icon">
					<i class="fas fa-bolt"></i>
				</span>
				<span>Fast</span>
			</h4>
			<p class="subtitle is-6">Compiles classes on the fly for extremely fast performance.</p>
		</div>

		<div class="column is-4">
			<h4 class="title is-4 has-text-weight-normal">
				<span class="icon">
					<i class="fas fa-sync-alt"></i>
				</span>
				<span>Flexible</span>
			</h4>
			<p class="subtitle is-6">Conservative when writing, liberal when reading.</p>
		</div>

		<div class="column is-4">
			<h4 class="title is-4 has-text-weight-normal">
				<span class="icon">
					<i class="fas fa-thumbs-up"></i>
				</span>
				<span>Easy to Use</span>
			</h4>
			<p class="subtitle is-6">
				Reading and writing is as simple as GetRecords&lt;T&gt;() and WriteRecords(records).
				No configuration required.
			</p>
		</div>

		<div class="column is-4">
			<h4 class="title is-4 has-text-weight-normal">
				<span class="icon">
					<i class="fas fa-cogs"></i>
				</span>
				<span>Highly Configurable</span>
			</h4>
			<p class="subtitle is-6">Feature rich mapping and attribute systems to configure any type of CSV file to any type of class.</p>
		</div>

		<div class="column is-4">
			<h4 class="title is-4 has-text-weight-normal">
				<span class="icon">
					<i class="fas fa-clipboard-check"></i>
				</span>
				<span><a href="https://tools.ietf.org/html/rfc4180" target="_blank">RFC 4180</a> Compliant</span>
			</h4>
			<p class="subtitle is-6">Adheres to the RFC 4180 standard to ensure compatibility across systems.</p>
		</div>

		<div class="column is-4">
			<h4 class="title is-4 has-text-weight-normal">
				<span class="icon">
					<i class="fab fa-linux"></i>
				</span>
				<span>Linux Mode</span>
			</h4>
			<p class="subtitle is-6">
				Mode for common Linux/SerDe files where an escape character is used instead of RFC 4180's field quoting.
			</p>
		</div>

		<div class="column is-4">
			<h4 class="title is-4 has-text-weight-normal">
				<span class="icon">
					<i class="fas fa-file-excel"></i>
				</span>
				<span>Graceful Fallback</span>
			</h4>
			<p class="subtitle is-6">When non-standard files are read, fallback will match MS Excel parsing.</p>
		</div>

		<div class="column is-4">
			<h4 class="title is-4 has-text-weight-normal">
				<span class="icon">
					<i class="fas fa-memory"></i>
				</span>
				<span>Low Memory Usage</span>
			</h4>
			<p class="subtitle is-6">Reading records will yield results so only one record is in memory at a time.</p>
		</div>

		<div class="column is-4">
			<h4 class="title is-4 has-text-weight-normal">
				<span class="icon">
					<i class="fas fa-database"></i>
				</span>
				<span>Field Caching</span>
			</h4>
			<p class="subtitle is-6">
				Option to use field caching when there is repeated data in a CSV file. This will reduce memory
				and speed up parsing time.
			</p>
		</div>

		<div class="column is-4">
			<h4 class="title is-4 has-text-weight-normal">
				<span class="icon">
					<i class="fab fa-apple"></i>
				</span>
				<span>Run Anywhere</span>
			</h4>
			<p class="subtitle is-6">
				CsvHelper is built on .NET Standard 2.0 which allows it to run
				<a href="https://docs.microsoft.com/en-us/dotnet/standard/net-standard" target="_blank">almost everywhere</a>.
				Older versions of .NET are possible if needed.
			</p>
		</div>

		<div class="column is-4">
			<h4 class="title is-4 has-text-weight-normal">
				<span class="icon">
					<i class="fab fa-github"></i>
				</span>
				<span>Open Source</span>
			</h4>
			<p class="subtitle is-6">
				Many contributors have helped make CsvHelper the great library it is today.
				Completely free for commercial use. Dual licensed under
				<a href="https://opensource.org/licenses/MS-PL" target="_blank">MS-PL</a> and
				<a href="https://opensource.org/licenses/Apache-2.0" target="_blank">Apache 2</a>.
			</p>
		</div>
	</div>

	<br />

	<h3 class="title is-3">Help</h3>
	<hr />

	<div class="columns is-multiline">
		<div class="column is-4">
			<h4 class="title is-4 has-text-weight-normal">
				<span class="icon">
					<i class="fab fa-stack-overflow"></i>
				</span>
				<span>Stack Overflow</span>
			</h4>
			<p class="subtitle is-6">
				<a href="https://stackoverflow.com/questions/tagged/csvhelper">Stack Overflow</a>
				has millions of users in its community just waiting to answer your questions.
				There is only one of me and I'm pretty busy.
				<span class="icon">
					<i class="fas fa-grin-squint-tears"></i>
				</span>
			</p>
		</div>

		<div class="column is-4">
			<h4 class="title is-4 has-text-weight-normal">
				<span class="icon">
					<i class="fas fa-book"></i>
				</span>
				<span>Documentation</span>
			</h4>
			<p class="subtitle is-6">
				Learn how to use CsvHelper using the <a href="@Context.GetLink("/api")">API reference</a>
				or check out some <a href="@Context.GetLink("/examples")">examples</a>.
			</p>
		</div>

		<div class="column is-4">
			<h4 class="title is-4 has-text-weight-normal">
				<span class="icon">
					<i class="fas fa-bug"></i>
				</span>
				<span>Features Requests and Bugs</span>
			</h4>
			<p class="subtitle is-6">
				If you have a feature request or have found a bug, you can
				<a href="https://github.com/joshclose/csvhelper/issues" target="_blank">log an issue</a>.
				Please use
				<a href="https://stackoverflow.com/questions/tagged/csvhelper" target="_blank" rel="nofollow">Stack&nbsp;Overflow</a>
				if you have a question.
			</p>
		</div>
	</div>

	<br />

	<h3 class="title is-3">License</h3>
	<hr />

	<p>Completely free for commercial use. Dual licensed. Choose which ever license suits your needs.</p>
	<p><a href="https://opensource.org/licenses/MS-PL" target="_blank" rel="nofollow">Microsoft Public License (MS-PL)</a></p>
	<p><a href="https://opensource.org/licenses/Apache-2.0" target="_blank" rel="nofollow">Apache License, Version 2.0</a></p>

	<br /><br />

	<h3 class="title is-3">Contributions</h3>
	<hr />

	<div class="content">
		<p>Want to contribute? Great! Here are a few guidelines.</p>
		<ol>
			<li>
				If you want to do a feature, post an issue about the feature first. Some features are intentionally left out,
				some features may already be in the works, or I may have some advice on how I think it should be done. I would
				feel bad if time was spent on some code that won't be used.
			</li>
			<li>
				If you want to do a bug fix, it might not be a bad idea to post about it too. I've had the same bug fixed by
				multiple people at the same time before.
			</li>
			<li>
				All code should have a unit test. If you make a feature, there should be significant tests around the feature.
				If you do a bug fix, there should be a test specific to that bug so it doesn't happen again.
			</li>
			<li>
				Pull requests should have a single commit. If you have multiple commits, squash them into a single commit before
				requesting a pull.
			</li>
			<li>
				When in Rome: Try and follow the code styling already in place. I use default Visual Studio Text Editor settings
				but change tabs to Keep tabs.
			</li>
		</ol>
	</div>

	<br />

	<h3 class="title is-3">Contributors</h3>
	<hr />

	<a href="https://github.com/JoshClose/CsvHelper/graphs/contributors">
		<img src="https://opencollective.com/csvhelper/contributors.svg?width=890&button=false" style="max-width: 100%" />
	</a>

	<br /><br /><br />

	<h3 class="title is-3">Donations</h3>
	<hr />

	<div class="columns is-multiline">
		<div class="column">
			<h4 class="title is-4 has-text-weight-normal">
				<span class="icon">
					<i class="fab fa-github"></i>
				</span>
				<span>GitHub Sponsors</span>
			</h4>
			<p class="subtitle is-6">
				You can do one time or recurring donations through
				<a href="https://github.com/sponsors/JoshClose" target="_blank" rel="nofollow">GitHub Sponsors</a>.
			</p>
		</div>

		<!--
		<div class="column is-4">
			<h4 class="title is-4 has-text-weight-normal">
				<span class="icon">
					<i class="fab fa-amazon"></i>
				</span>
				<span>Wish List</span>
			</h4>
			<p class="subtitle is-6">
				If you want to do something a little more fun, you can pick something
				from my <a href="http://a.co/7EwAZXU" target="_blank" rel="nofollow">Amazon wish list</a>. This
				obviously doesn't go directly towards building software, but does help
				keep me sane when I'm not.
			</p>
		</div>
		-->
	</div>
	<br />

	<h3 class="title is-3">Sponsors</h3>
	<hr />

	<p>A huge thanks to the <a href="https://github.com/aws/dotnet-foss">.NET on AWS Open Source Software Fund</a> for sponsoring CsvHelper!</p>

	<a href="https://github.com/aws/dotnet-foss">
		<img src="@Context.GetLink("/images/aws.png")" />
	</a>
	<br />

	<p>Thanks to <a href="https://github.com/microsoft">Microsoft</a> for being a sponsor!</p>

	<a href="https://github.com/microsoft">
		<img src="@Context.GetLink("/images/microsoft.png")" />
	</a>
	<br />
</div>
